1. Technical Field of the Invention
The present invention relates to the use of virtual slots in a ring topology and to a dynamic wait method of determining whether a node in the ring should retain or give up ownership of a virtual slot.
2. Background Art
Multiprocessor computer systems have included buses that allow communication between processors, and between a chipset and the processors (each of which are referred to as nodes). To avoid contention on the bus, a central arbiter, which may be in the chipset, determines which node on the bus may transmit a message on the bus. A message on the bus is broadcast to each node on the bus and each node receives the message essentially at the same time. Therefore, there is no confusion as to the order in which the messages are transmitted.
Ring topologies have been developed in which each node is connected to an adjacent node on a ring. In a point-to-point ring, each node is separated from adjacent nodes on the ring by links (conductors). An advantage of rings are that the drivers of conductors on the ring are loaded only with the receiver circuitry of the particular node, not all nodes on the system. Accordingly, the signals may change state significantly faster.
Each node may transmit messages to each other node, but the messages are passed sequentially from node to node, rather than from a central point to all nodes simultaneously. Accordingly, none of the links can be observed by all the nodes. Control of access to the ring is nontrival.
There is a need for an improved system and method for transmitting messages on the ring and for determining which nodes may transmit the messages at a given time.
In some embodiments, a ring based multiprocessor system includes nodes in a ring, at least some of the nodes including network interface circuitry to transmit messages beginning at a first flit of multi-flit virtual slots.
In some embodiments, a ring based multiprocessor system includes nodes in a ring at least some of the nodes including network interface circuitry to transmit messages in virtual slots between nodes. The interface circuitry includes control circuitry to determine whether to retain or release ownership of the virtual slots based on values in an insig buffer and an ownership history table.